1
Architettare la Portabilità su Cluster Ibridi
AI022Lesson 2
00:00

Il cuore del Interfaccia per il Calcolo Ibrido con Portabilità (HIP) risiede nella sua capacità di astrarre strumenti specifici per l'hardware in un'unica API di runtime C++. Utilizzando un paradigma Paradigma Single-Source, gli sviluppatori possono mantenere un unico codice che si mappa dinamicamente su backend NVIDIA o AMD.

1. Risoluzione dell'Hardware basata sui Percorsi

L'architettura si basa su marcatori di ambiente che agiscono da punti di riferimento per il sistema di compilazione. Questi marcatori indicano al hipcc wrapper del compilatore dove trovare le librerie e gli header necessari per il dispositivo.

  • CUDA_PATH: Il punto di riferimento principale per lo stack NVIDIA (flussi di lavoro NVCC/PTX).
  • HIP_PATH: Il punto di riferimento principale per lo stack AMD ROCm (flussi di lavoro Clang/LLVM).
Codice Sorgente HIPStack NVIDIA$CUDA_PATHStack AMD ROCm$HIP_PATHCluster Ibrido

2. Astrazione dello Stack di Calcolo

La portabilità è ottenuta separando il livello applicativo dall'architettura microscopica. La logica viene risolta in fase di compilazione utilizzando hipcc, garantendo che una manutenzione del codice $O(1)$ porti a una compatibilità hardware $O(N)$.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>